﻿// 购物车
var cookie=
{ 
    //读取COOKIES,n为COOKIE名 
    Get:function(n)
    { 
        var re=new RegExp(n+'=([^;]*);?','gi'); 
        var r=re.exec(document.cookie)||[]; 
        return (r.length>1?r[1]:null) 
    }, 
    Get1:function(n)
    { 
        var re=new RegExp(n+'=([^;]*);?','gi'); 
        var r=re.exec(document.cookie)||[]; 
        return unescape(r.length>1?r[1]:null) 
    }, 
    
    //写入COOKIES,n为Cookie名，v为value 
    Set:function(n,v,e,p,d,s)
    { 
        var t=new Date; 
        if(e)
        { 
            // 8.64e7 一天 3.6e6 一小时 
            t.setTime(t.getTime() + (e*3.6e6*30)); 
        } 
        document.cookie=n+'='+v+'; '+(!e?'':'; expires='+t.toUTCString())+(!p?'':'; path='+p)+(!d?'':'; domain='+d)+(!s?'':'; secure') // Set cookie 
    }, 
       
    Set1:function(n,v,e,p,d,s)
    { 
        var t=new Date; 
        if(e)
        { 
            // 8.64e7 一天 3.6e6 一小时 
            t.setTime(t.getTime() + (e*8.64e7*30)); 
        } 
        document.cookie=n+'='+escape(v)+'; '+(!e?'':'; expires='+t.toUTCString())+(!p?'':'; path='+p)+(!d?'':'; domain='+d)+(!s?'':'; secure') // Set cookie 
    }, 

    Del:function(n,p,d)
    { 
        var t=cookie.Get(n); 
        document.cookie=n+'='+(!p?'':'; path='+p)+(!d?'':'; domain='+d)+'; expires=Thu, 01-Jan-70 00:00:01 GMT'; 
        return t 
    } 
}; 

  
var Common = 
{    
    //移除数组中指定项    
    delArr:function(ar,n) 
    { 
        //n表示第几项，从0开始算起。 
        if(n<0) //如果n<0，则不进行任何操作。 
            return ar; 
        else 
            return ar.slice(0,n).concat(ar.slice(n+1,ar.length)); 
    }, 
   
   //添加至购物车 
   intoCar:function(proid,quantity,pronorm,procolor,filename) 
   { 
        if(proid != "") 
        { 
            var ProIDList =cookie.Get(filename); //车内商品ID列表    
            if(ProIDList!=null && ProIDList!="" && ProIDList!="null") 
            { 
                if(Common.hasOnes(proid,filename)) 
                { 
                    ProIDList += "&"+proid+"="+proid+"|"+quantity+"|"+escape(pronorm)+"|"+escape(procolor); 
                    cookie.Set(filename,ProIDList,2,"/"); //更新购物车清单   
                } 
                else {}
            } 
            else 
            {     
                ProIDList=proid+"="+proid+"|"+quantity+"|"+escape(pronorm)+"|"+escape(procolor);    
                cookie.Set(filename,ProIDList,2,"/"); //更新购物车清单   
            }   
        }    
   }, //添加物品结束 
   
   //重置购物车内个数 
   reloadcar:function() 
   { 
        var t=cookie.Get("TotalPro"); 
        if(t!=""&&t!="null") 
            document.getElementById("cart_num").innerText="(" + cookie.Get("TotalPro") + ")"; 
        else 
            document.getElementById("cart_num").innerText="(0)"; 
   }, //重置结束 
   
   //检验购物车内是否已经含有该商品 
   hasOne:function(pid,filename)
   { 
        ProIDList = cookie.Get(filename); //车内商品ID列表 
        if(ProIDList.lastIndexOf("&") != -1)
        { 
            var arr=ProIDList.split("&"); 
            for(i=0;i<arr.length;i++) 
            {   
                if(arr[i].substr(0,arr[i].indexOf("="))==pid) 
                {    
                    return false; 
                } 
            } 
        } 
        else if(ProIDList!="null"&&ProIDList!="") 
        { 
            if(ProIDList.substr(0,ProIDList.indexOf("="))==pid) 
            return false; 
        } 
        
        return true; 
   }, //检测结束 
   
   //检验购物车内是否已经含有该商品 ，如果有就自动数量+1
   hasOnes:function(pid,filename)
   { 
        ProIDList = cookie.Get(filename); //车内商品ID列表 
        if(ProIDList.lastIndexOf("&") != -1)
        { 
            var arr=ProIDList.split("&"); 
            for(i=0;i<arr.length;i++) 
            {   
                if(arr[i].substr(0,arr[i].indexOf("="))==pid) 
                { 
                    var arr2=arr[i].split("|"); 
                    arr2[1]=parseInt(arr2[1])+1; 
                    var tempStr=arr2.join("|");//由数组重组字符串 
                    arr[i] = tempStr; 
                    var newProList = arr.join("&");//由数组重组字符串 
                    cookie.Set(filename,newProList,2,"/"); //更新购物车清单
                    return false; 
                } 
            } 
        } 
        else if(ProIDList!="null"&&ProIDList!="") 
        { 
            if(ProIDList.substr(0,ProIDList.indexOf("="))==pid)
            { 
                var arr=ProIDList.split("|"); 
                arr[1]=parseInt(arr[1])+1; 
                var newProList=arr.join("|"); 
                cookie.Set(filename,newProList,2,"/"); //更新购物车清单 
                return false; 
            }
        } 
        
        return true; 
   }, //检测结束 
   
   //移除某商品 
   reMoveOne:function(proid,filename)
   {    
        if(!Common.hasOne(proid,filename))
        { 
            if(ProIDList.lastIndexOf("&") != -1)
            { 
                var arr=ProIDList.split("&"); 
                for(i=0;i<arr.length;i++)
                { 
                    if(arr[i].substr(0,arr[i].indexOf("="))==proid) 
                    {    
                        var arr2=Common.delArr(arr,i); 
                        var tempStr=arr2.join("&"); //由数组重组字符串    
                        cookie.Set(filename,tempStr,2,"/"); //更新购物车清单   
                        return; 
                    } 
                } 
            } 
           else
           {    
                cookie.Set(filename,"null",2,"/");//更新购物车清单  
           } 
        }    
   }, //移除物品结束 
   
   //修改某物品数量 
   updateQuantity:function(proid,quantity,filename)
   { 
        ProIDList = cookie.Get(filename); //车内商品ID列表 
        if(ProIDList.lastIndexOf("&") != -1) 
        { 
            var arr=ProIDList.split("&"); 
            var sub=Common.getSubPlace(ProIDList,proid);//获取该物品在COOKIE数组中的下标位置 

            var arr2=arr[sub].split("|"); 
            arr2[1]=quantity; 
            var tempStr=arr2.join("|");//由数组重组字符串 
            arr[sub] = tempStr; 
            var newProList = arr.join("&");//由数组重组字符串 
            cookie.Set(filename,newProList,2,"/"); //更新购物车清单 
        } 
        else
        { 
            var arr=ProIDList.split("|"); 
            arr[1]=quantity; 
            var newProList=arr.join("|"); 
            cookie.Set(filename,newProList,2,"/"); //更新购物车清单 
        } 
   }, //修改物品结束 
   
   //返回指定物品所在数组的下标位置 
   getSubPlace:function(list,proid)
   { 
        var arr=list.split("&"); 
        
        for(i=0;i<arr.length;i++)
        { 
            if(arr[i].substr(0,arr[i].indexOf("="))==proid) 
            {    
                return i; 
            } 
        } 

   } //返回下标结束 
     
}; 
